In the following, the word “manikin” will be used broadly to designate a computer-generated, usually three-dimensional, representation of a human or animal body, a humanoid or zoomorphic creature, or even a vegetable or an inanimate object (e.g. a piece of furniture such as a sofa). Most often, however, the manikin will be a representation of a human or humanoid body. The manikin may be designed ab initio, or it may be reconstructed by scanning a real body or object. A manikin may also be called an “avatar”.
The words “virtual garment” or “virtual upholstery” will refer to a computer-generated bi-dimensional or (most often) three-dimensional representation of clothing, upholstery or the like, suitable to be worn by a manikin. The virtual garment may be a model of a “real” garment suitable to be manufactured in the physical world. In the following, only the case of garments will be discussed, but all equally applies to upholstery.
Manikins and virtual garments are preferably “three-dimensional” (3D). Hereafter, a “three-dimensional” object will be an object—or a digital model thereof—admitting a three-dimensional representation, which allows the viewing of its parts from all angles.
The word “pattern part”, or simply “pattern”, will designate a piece of fabric, leather or other flexible material suitable to be used to manufacture a garment. A garment is most often manufactured by assembling several pattern parts by their edges. Patterns are usually considered two-dimensional, as they are developable (they can lie flat on a plane) and their thickness is negligible (smaller by at least two orders of magnitude) over their other dimensions.
A “seam” is a connection between two edges of a same or of two different pattern parts, which are stitched together in order to assemble the garment. “Stitching” should be construed broadly, encompassing all assembly techniques suitable for flexible materials such as fabric or leather, including sewing but also e.g. gluing.
Computer-aided techniques have been widely used in the development process of pattern-making in the fashion industry. Specifically, CAD (Computer Aided Design) and CAM (Computer Aided Manufacturing) systems have helped to produce digital 2D pattern parts which are then used to manufacture garments. These pattern parts are generally described as two-dimensional boundary curves enriched with additional information needed to physically construct the final garment. Several CAD systems exist on the market from companies such as Lectra, Gerber Technology, Optitex, Assyst GmBH (Human Solutions Group), Clo3D (Marvelous Designer). The modules they propose present common characteristics and are mainly focused on 2D pattern parts development, CAD-CAM management and manufacturing (e.g. pattern layout and cut with automatic machine).
With the emergence of 3D, virtual clothing is becoming a standard and it requires new techniques to assemble virtually the 2D pattern parts in order to get the virtual garment. However, while a number of publications teach how to design and simulate garments by computer, very few of them address the assembly process, where several pattern parts are stitched together to form a garment.
Document [Pro97] describes the assembly of a garment around a 3D manikin from several flat pattern parts. The assembly process consists of four steps:
1. Positioning of the pattern parts around the manikin,
2. Convergence of the edges of the pattern parts to be stitched together,
3. Merging of the pattern parts whose edges are stitched together,
4. Computation of the draping, taking into account the manikin.
The document explains that the order in which the pattern parts are stitched together is important and affects the final result. This order has to be found by trials and errors, and the user needs taking note of it if he wants to repeat the assembly.
Document [Kec05] describes a method for designing and simulating garments comprising pre-positioning planar pattern parts around a manikin and then sewing the pre-positioned pattern parts together, which involves merging them along seam lines. The sewing step, wherein all the seams are handled simultaneously, may only begin after all the pattern parts have been pre-positioned, which is quite restrictive.
Similarly, [Fon05] does not take into account the order of the different assembly tasks.
[Fuh05] discloses an ontology for garment pattern parts that enables declaring the pattern parts that are sewn together, as well as the order in which a virtual dressing of a collection of garments is performed. However, no detail is provided on the positioning and stitching of the pattern parts forming each garment; it seems that all the seams are assembled simultaneously.
Most commercial software tools for garment design follow the same approach, i.e. all the seams are assembled simultaneously. See for instance Physan DC Suite, Optitex, V-Stitcher from Browzwear, Vidya from HumanSolutions Gmbh.
The commercial software CLO3D/MarvelousDesigner enables to deal with seams and patterns in a sequential way. Indeed, in this software:                seams can be activated or deactivated by the user,        pattern parts can be activated/deactivated/frozen,        new pattern parts and seams can be introduced by the user.        
Using the activation/deactivation commands, the user can avoid dealing simultaneously with all the patterns and the seams. A “freeze pattern” allows “freezing” a pattern part, i.e. fixing its position while allowing other pattern parts to interact with it to avoid interpenetration of the parts. This tool may be useful to simplify the draping of multi-layered garments, by freezing an inner garment and draping over it. According to Clo3D user manual [CLO3D], this step by step draping process prevents that the simulation of the draping of multiple layered garments become unstable.
This approach allows creating complicated virtual 3D garments, but lacks repeatability. If two users try to design a same garment, using the same pattern parts and seam definitions, the will usually achieve different results as they will not necessarily perform exactly the same assembly task in the same order.
Furthermore, an assembly process cannot be easily adapted to other garments. For instance, the sequence of assembly tasks used for a sleeveless dress cannot be easily adapted to the creation of a similar new dress with sleeves.
Finally, is not clear how to replace or modify some patterns with another one during the process.
Moreover the approaches known from the prior art lack flexibility, the user having no control on the parameter used by the CAD system to carry it out. Such parameters include, for instance:                The gravity strength. Indeed, depending on the configuration, the gravity can help or hinder the assembly. For example, 1G (i.e. normal) gravity induces a free fall of pattern parts of 20 cm in 0.2 which, for instance, may compromise the assembly of the front and back panels of a shirt. Therefore it would be advisable to switch the gravity off, or at least reducing its strength during certain assembly steps. On the contrary, gravity may make a flat sleeve pattern part fold on the arm of a manikin in T-pose, easing its assembly.        Assembly speed, which allows taking into account the strongly variable difficulty of assembling seams depending on their configuration.        